/*
 * Copyright 2016 The Closure Compiler Authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

goog.module('jscomp.runtime_tests.polyfill_tests.number_isinteger_test');
goog.setTestOnly();

const testSuite = goog.require('goog.testing.testSuite');
const testing = goog.require('jscomp.runtime_tests.polyfill_tests.testing');

const noCheck = testing.noCheck;

testSuite({
  testIsInteger() {
    assertTrue(Number.isInteger(0));
    assertTrue(Number.isInteger(-0));
    assertTrue(Number.isInteger(1));
    assertTrue(Number.isInteger(1.0));
    assertTrue(Number.isInteger(10));
    assertTrue(Number.isInteger(1e300));
    assertTrue(Number.isInteger(-1e10));

    assertFalse(Number.isInteger(Infinity));
    assertFalse(Number.isInteger(-Infinity));
    assertFalse(Number.isInteger(NaN));
    assertFalse(Number.isInteger(1.2));
    assertFalse(Number.isInteger(1e-5));
    assertFalse(Number.isInteger(noCheck('12')));
    assertFalse(Number.isInteger(noCheck('1.2')));
    assertFalse(Number.isInteger(noCheck('foo')));
  },
});
